Evidence zmenenych dat (zaznamu) v databazi

Otázka od: Petr Fejfar

14. 9. 2002 7:15

Hi all,

cas od casu se na tomto foru objevi zminka,
ze zaznamy v DB jsou opatreny informaci kdo
a kdy je zmenil popr. nejake dalsi informace souvisejici se zmenou.

Jako nezkuseny databazista jsem nabyl dojmu,
ze se to bezne resi pridanim time stampu
a odkazem na uzivatele.

Ale me z pohledu normalizace dat pripada spravnejsi vytvorit tabulku se
journalem zmen,
ktera by obsahovala ten time stamp a odkaz na uzivatele a ve vsech ostatnich
tabulkach se jen odkazovat na zaznam v tomto journalu.

Mylim se? Neunika mi nejaka nevyhoda tohoto reseni?


Thx, pf


Odpovedá: Zbysek Hlinka

14. 9. 2002 7:52

On 14 Sep 2002 at 8:09, Petr Fejfar wrote:

> cas od casu se na tomto foru objevi zminka,
> ze zaznamy v DB jsou opatreny informaci kdo
> a kdy je zmenil popr. nejake dalsi informace souvisejici se zmenou.
>
> Jako nezkuseny databazista jsem nabyl dojmu,
> ze se to bezne resi pridanim time stampu
> a odkazem na uzivatele.
>
> Ale me z pohledu normalizace dat pripada spravnejsi vytvorit tabulku
> se journalem zmen, ktera by obsahovala ten time stamp a odkaz na
> uzivatele a ve vsech ostatnich tabulkach se jen odkazovat na zaznam v
> tomto journalu.
>
> Mylim se? Neunika mi nejaka nevyhoda tohoto reseni?

Je to na tobe, jakym zpusobem si to implementujes. Kazdopadne to
databaze nedela automaticky, je to cele na navrhari databaze.

Jinak timestamp primo v kazde tabulce je vhodny prave pro zjisteni,
zda mi nekdo nezmenil zaznam pod rukou. Postup je takovyto: nactu
zaznam i s timestampem, edituji, a pak predam data i s mym
timestampem ulozene procedure. Ta porovna predany timestamp s
aktualnim, a pokud se neshoduje, vrati hlaseni o zmene zaznamu.

S pozdravem

Zbysek Hlinka
E-mail: hlinka@hlinka.cz, localizator@localizator.com
Phone: +420 603 551 282